#ifndef _YEP_ENGINE_DRAW_EVENT_HPP
#define _YEP_ENGINE_DRAW_EVENT_HPP

#include "../common.hpp"
#include "event.hpp"

namespace yep
{


/**
 * @brief A event fired on Scene2d::draw()
 **/
class DrawEvent: public Event
{
public:
    /**
     * @brief Constructor
     **/
    DrawEvent( Game &game, Scene2d &scene, Screen &screen_, const Vector2 &viewPosition_, const Vector2 &viewSize_ ):
        Event( game, scene ), screen( screen_ ), viewPosition( viewPosition_ ), viewSize( viewSize_ ) {}

    /**
     * @brief Destructor
     **/
    ~DrawEvent() {}

    /**
     * @brief Returns the screen
     **/
    Screen &getScreen( void ) const {
        return screen;
    }

    /**
     * @brief Returns the viewPosition
     **/
    const Vector2 &getViewPosition( void ) const {
        return viewPosition;
    }

    /**
     * @brief Returns the viewSize
     **/
    const Vector2 &getViewSize( void ) const {
        return viewSize;
    }

private:
    Screen &screen;
    Vector2 viewPosition;
    Vector2 viewSize;
};
}

#endif // _YEP_ENGINE_DRAW_EVENT_HPP

